OBJ (programming Language)
   HOME

TheInfoList



OR:

OBJ is a
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
family introduced by
Joseph Goguen __NOTOC__ Joseph Amadee Goguen ( ; June 28, 1941 – July 3, 2006) was an American computer scientist. He was professor of Computer Science at the University of California and University of Oxford, and held research positions at IBM and SRI In ...
in 1976, and further worked on by Jose Meseguer.


Overview

It is a family of declarative "ultra high-level" languages. It features abstract types, generic modules, subsorts (subtypes with
multiple inheritance Multiple inheritance is a feature of some object-oriented computer programming languages in which an object or class can inherit features from more than one parent object or parent class. It is distinct from single inheritance, where an object or ...
),
pattern-matching In computer science, pattern matching is the act of checking a given sequence of tokens for the presence of the constituents of some pattern. In contrast to pattern recognition, the match usually has to be exact: "either it will or will not be ...
modulo equations, E-strategies (user control over
laziness Laziness (also known as indolence) is disinclination to activity or exertion despite having the ability to act or to exert oneself. It is often used as a pejorative; terms for a person seen to be lazy include "couch potato", "slacker", and "b ...
), module expressions (for combining modules), theories and views (for describing module interfaces) for the massively parallel RRM ( rewrite rule machine). Members of the OBJ family of languages include CafeOBJ, Eqlog, FOOPS, Kumo, Maude,
OBJ2 OBJ is a programming language family introduced by Joseph Goguen in 1976, and further worked on by Jose Meseguer. Overview It is a family of declarative "ultra high-level" languages. It features abstract types, generic modules, subsorts (subty ...
, and
OBJ3 OBJ is a programming language family introduced by Joseph Goguen in 1976, and further worked on by Jose Meseguer. Overview It is a family of declarative programming, declarative "ultra high-level" languages. It features Abstract data type, abstract ...
.The OBJ family
/ref>


OBJ2

OBJ2 is a
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
with Clear-like parametrised modules and a functional system based on equations.


OBJ3

OBJ3 is a version of OBJ based on order-sorted
rewriting In mathematics, computer science, and logic, rewriting covers a wide range of methods of replacing subterms of a well-formed formula, formula with other terms. Such methods may be achieved by rewriting systems (also known as rewrite systems, rewr ...
. OBJ3 is
agent Agent may refer to: Espionage, investigation, and law *, spies or intelligence officers * Law of agency, laws involving a person authorized to act on behalf of another ** Agent of record, a person with a contractual agreement with an insuranc ...
-oriented and runs on
Kyoto Common Lisp Kyoto Common Lisp (KCL) is an implementation of Common Lisp by Taichi Yuasa and Masami Hagiya, written in C to run under Unix-like operating systems. KCL is compiled to ANSI C. It conforms to Common Lisp as described in the 1984 first editio ...
AKCL.


See also

*
Automated theorem proving Automated theorem proving (also known as ATP or automated deduction) is a subfield of automated reasoning and mathematical logic dealing with proving mathematical theorems by computer programs. Automated reasoning over mathematical proof was a maj ...
*
Formal methods In computer science, formal methods are mathematically rigorous techniques for the specification, development, and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the expec ...


References

* J. A. Goguen
Higher-Order Functions Considered Unnecessary for Higher-Order Programming
In ''Research Topics in Functional Programming'' (June 1990). pp. 309–351. *"Principles of OBJ2", K. Futatsugi et al., 12th POPL, ACM 1985, pp. 52–66. *


External links


The OBJ archiveInformation and OBJ3 manual
PostScript PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, Doug Br ...
format Academic programming languages Functional languages Logic in computer science Formal specification languages Theorem proving software systems Term-rewriting programming languages {{compu-lang-stub